home *** CD-ROM | disk | FTP | other *** search
/ Acorn Risc Technologies StrongARM CD-ROM / Acorn Risc Technologies StrongARM CD-ROM.iso / ftp / documents / appnotes / 200_215 / 202c / Text
Encoding:
Text File  |  1994-07-08  |  27.9 KB  |  628 lines

  1. -----------------------------------------------------------------------------
  2. 05/04/1994
  3. -----------------------------------------------------------------------------
  4. Support Group Application Note
  5. Number: 202
  6. Issue: 1.04
  7. Author: James Bye
  8. -----------------------------------------------------------------------------
  9.  
  10. Writing Games for RISC OS
  11.  
  12. -----------------------------------------------------------------------------
  13. Notes: 
  14.  
  15. This application note outlines what is required by a game running under RISC 
  16. OS and the considerations that need to be taken into account by the games 
  17. writer.  RISC OS computers, unlike Acorn's previous computers such as the BBC 
  18. Model B and Master 128, run in a desktop environment where other applications 
  19. are running and processing data.  The games writer needs to take this into 
  20. account and hence enable the user to start the game without the loss of any 
  21. data or other disruption to the computer of any  kind.                         
  22. -----------------------------------------------------------------------------
  23. Applicable Hardware: 
  24.  
  25. All Acorn RISC OS based computers
  26.  
  27. Related Application Notes: 
  28.  
  29. None
  30.  
  31. -----------------------------------------------------------------------------
  32. Copyright (C) 1994 Acorn Computers Limited 
  33.  
  34. Every effort has been made to ensure that the information in this leaflet is 
  35. true and correct at the time of printing. However, the products described in
  36. this leaflet are subject to continuous development and improvements and
  37. Acorn Computers Limited reserves the right to change its specifications at
  38. any time. Acorn Computers Limited cannot accept liability for any loss or
  39. damage arising from the use of any information or particulars in this
  40. leaflet. ACORN, ECONET and ARCHIMEDES are trademarks of Acorn Computers
  41. Limited.
  42. -----------------------------------------------------------------------------
  43. Support Group
  44. Acorn Computers Limited
  45. Acorn House
  46. Vision Park
  47. Histon
  48. Cambridge
  49. CB4 4AE                                                  
  50. -----------------------------------------------------------------------------
  51.  
  52. 1. Background
  53.  
  54. RISC OS is a multi-tasking environment, where many applications may be running 
  55. at the same time.  Any one or more of these applications may be actively 
  56. editing data and it is important that the subsequent execution of a game does 
  57. not result in the user losing valuable data.
  58.  
  59. On certain systems, other than those provided and manufactured by Acorn, the 
  60. booting of such games  is totally different.  There are, for example, games 
  61. for other machines where the manual actually states  that to load the game you 
  62. must first remove the system disc from the floppy drive, power down the 
  63. machine, insert the game disc and then power up the machine to re-start the 
  64. game.  As you can see, doing such a thing in a RISC OS world could have 
  65. adverse effects on the user which can result in the loss of data.  In an 
  66. environment such as RISC OS, more care and consideration needs to be used in 
  67. the interests of  the user.
  68.  
  69.  
  70.  
  71. 2. The structure of a game application
  72.  
  73. Any application written for RISC OS should follow the structure that has been 
  74. described in the RISC OS Style Guide and it is important that games follow the 
  75. same structure.  The  game will be contained in an application directory and, 
  76. for this example, we shall use the  directory name !Game.  The structure of 
  77. the game application directory could be as follows :-
  78.  
  79. !Boot 
  80. often found in the application directory but might well be unnecessary.
  81. The filer will automatically load !Sprites if the !boot is not present.  You
  82. should only include the !Boot file if you wish to set run or load actions.
  83.  
  84. !Sprites  
  85. spritefile passed to *iconsprites by the filer (or the !boot file).  This 
  86. should contain the sprite to represent the application icon in the directory 
  87. display.
  88.  
  89. !Run 
  90. *Run by the filer when the application is double clicked on in the directory 
  91. display.  This should set environment variables as required and
  92. *iconsprites the !Sprites file.
  93.  
  94. !Help  
  95. the game application's documentation
  96.  
  97. !RunImage  
  98. the main executable part of the game
  99.  
  100. Modules  
  101. a directory containing any modules loaded by the game application
  102. (any Acorn modules should be inside !System and not inside the game)
  103.  
  104. Sprites  
  105. a directory containing the Game's own personal sprites used during
  106. the running of the game.  Game's may have many different sprite files
  107. so it is useful to keep them in one place within the !Game.
  108.  
  109. Code  
  110. a directory containing other bits of code that are loaded and run by the
  111. !Game.
  112.  
  113. Resources  
  114. a directory containing assorted resources needed by the !Game 
  115. (such as data files etc...)
  116.  
  117. Of course, it is up to the games writer to decide on the structure of the 
  118. !Game directory but it always a good idea to have a tidy and maintainable 
  119. structure.  The !Game directory must contain the !Sprites, !Help and !Run file 
  120. but we recommend that the other items listed above are also included if they 
  121. are necessary.  It is up to games writers to decide whether they wish to add 
  122. extra directories or files.
  123.  
  124.  
  125. 3. Providing help for the game
  126.  
  127. A game application is the same as a normal RISC OS application and help should 
  128. be provided in the standard way.  The standard RISC OS way is to have a text 
  129. file inside the application directory called !Help.  This provides the user 
  130. with information about the application from the directory display menu.  
  131. However, the game itself is not restricted to providing this as the only help 
  132. available.  Many games provide help when the !Game has been run, which is 
  133. optional by user selection.  Another common method under RISC OS is to provide 
  134. a second application directory on the disc that, once run, provides the user 
  135. with the documentation and information that he/she requires.  This application 
  136. is commonly called !ReadMe or !GameInfo (or similar).
  137.  
  138. It is worth noting that the use of a !Help file is the most common way a RISC 
  139. OS application provides help to the user.  Hence, using this method provides 
  140. the user with a standard environment.
  141.  
  142.  
  143. 4. The execution and termination of a game
  144.  
  145. Any game should be in the form of a standard RISC OS application, as described 
  146. earlier in this document.  Hence, the user should be able to start the game as 
  147. if it was any other application.  This is carried out by double clicking on 
  148. the !Game application in a directory display.  The next steps that are taken 
  149. are really up to the game entirely.  It is most common for the game to start 
  150. right away and take over the whole screen (if it needs to do so).  Another 
  151. method, that is currently being used by some games, is to install an icon on 
  152. the iconbar like a normal application.  The user can then set any 
  153. configuration options, such as redefining keys or loading saved data, in the 
  154. desktop environment.  The game can then be started by selecting a menu option 
  155. or clicking on the icon  on the iconbar.  The latter approach is preferred as 
  156. it provides a similar environment to other applications.
  157.  
  158. Quite a few games in the RISC OS world still rely on Shift-Break to start 
  159. them.  This is a legacy from the  BBC Model B world and this approach should 
  160. no longer be taken.  The user should start the game as if it were any other 
  161. RISC OS application.
  162.  
  163. At any point in the game, the user should be able to terminate it and return 
  164. to the desktop.  A recommended method for this is the use of the Escape key 
  165. whilst the game is running, or by selecting an option when the user is at the 
  166. 'start-up' screen.  Users should be able to return to a desktop that is in the 
  167. state that they left it, if possible.  Many users have plenty of free memory 
  168. and in many cases no memory grabbing techniques are required.  On no account 
  169. should running the game result in the unexpected loss of data.  The CMOS RAM 
  170. settings must be in the same state as before the game was started.  The CMOS 
  171. RAM settings should not be touched under any circumstances.  It is permissible 
  172. to change the font cache, system sprite area or other transient data areas as 
  173. long as the user is informed.   In this case the only return to the desktop 
  174. should be via a reset.
  175.  
  176.  
  177. 5. Ensuring there is enough space for execution
  178.  
  179. It is important that all games written for Archimedes computers work on the 
  180. base machines.  The base machine is currently a 1 Megabyte machine with a 
  181. single floppy disc drive.  On a base machine, the user will have about 720K 
  182. (default) of free space for the game to use.  The maximum amount of free 
  183. memory for 
  184. a default machine can be changed by shrinking the font cache and system sprite 
  185. area to zero, and this can 
  186. increase the amount of free memory to approximately 752K.  This extra memory 
  187. can be grabbed by the game under the consent of the user.  Of course, a more 
  188. complicated game may need a higher specification to run (e.g. a 2 Megabyte 
  189. machine).  If this is the case then the game should clearly state this to the 
  190. purchaser.  Please note that RISC OS 3 version 3.10 provides 24k less free RAM 
  191. in a machine in its default state compared to that of an equivalent RISC OS 2 
  192. machine (696k compared to 720k).
  193.  
  194. In the absence of a suitable operating system interface in early Archimedes 
  195. computer systems, some games developers used a variety of highly undesirable 
  196. techniques for ensuring that host machines had sufficient free memory to run 
  197. their games. As stressed elsewhere in this application note, actions such as 
  198. changing CMOS RAM configuration or altering memory allocation are totally 
  199. unacceptable in an application running in the RISC OS multi-tasking 
  200. environment.  However, since the  majority of games run as single tasks a 
  201. degree of configuration management is acceptable provided that it is :-
  202.  
  203. - necessary
  204. - initiated with the user's consent
  205. - transient in effect 
  206.  
  207. As with any application, a game ought to be able to determine the amount of 
  208. free memory it requires to start up in; if sufficient memory is available the 
  209. game should  start immediately.
  210.  
  211. If free memory is currently insufficient, the game should alert the user to 
  212. the problem with a suitable dialogue box :-
  213.  
  214. <Insert DrawFiles.Figure1 here>
  215.  
  216. If the user chooses to continue with execution, the game should first close 
  217. the  desktop (thereby offering the user the opportunity to save unsaved data); 
  218. it is  then at liberty to make any necessary changes to the machine's memory 
  219. allocation.  The author of the game application should use the Desktop 
  220. Closedown protocol to ensure that any applications that have unsaved data give 
  221. the user the chance to object.  Example code on how to do this can be supplied 
  222. on request via Developer Support.
  223.  
  224.  
  225. It is possible for game applications to retrieve memory from the Relocatable 
  226. Memory Area (RMA) by RMKilling selected modules. It has to be said, however, 
  227. that this technique is not totally reliable as its effect cannot be guaranteed 
  228. across all variants of RISC OS. For a list of modules that can be RMKilled, 
  229. then please see Appendix C.  The RMA does suffer from fragmentation, so the 
  230. killing of modules does not always ensure that the free memory will be 
  231. returned for general use.  To retrieve the memory after killing modules, you 
  232. will have to issue the command *RMTidy.  However, under RISC OS 3.50 (and 
  233. greater) the RMTidy command will no longer work (it is now a dummy command).  
  234. Hence there is no way of retrieving space from RMKilling modules, rendering 
  235. this memory retreival method as being useless.
  236.  
  237. It is recommended that a game which makes any change to the host machine's 
  238. memory allocation should end its execution by instructing the user to perform 
  239. a hard reset, e.g.
  240.                                                                          
  241.   Execution of !Game required some changes to your machine's internal
  242.   memory allocation. Reset your computer to restore your machine's 
  243.   normal configuration.
  244.  
  245.  
  246. 6. Saving the game state
  247.  
  248. It is quite often desirable, especially with tactical or adventure games, to 
  249. allow the user to save the state of play at a particular point in the game.  
  250. With RISC OS being a 'multi-disc' environment (i.e. having hard discs of 
  251. different varieties - SCSI, IDE, ST506), it is important that the games writer 
  252. does not rely on saving the game to a specific filing system or disc (e.g. 
  253. save state to the root directory of the floppy disc).  As explained earlier in 
  254. this document, it is a good idea to have your game inside an application 
  255. directory.  In the !Run file you should set up the system variable 'Game$Dir' 
  256. which will give you a pointer to your application directory (so that you do 
  257. not have to be filing system specific).  The game state can then be saved 
  258. inside the application directory using a filename such as 
  259. '<Game$Dir>.SavedState'.  An alternative method of saving would be to use the 
  260. !GameStore application, which is detailed in Appendix G.
  261.  
  262. However, a better method of saving the game state is to use the RISC OS 
  263. filetype reserved for the purpose and allow the user to drag the file to any 
  264. filing system that he feels fit.  This method is only really possible when the 
  265. game installs itself on the iconbar (explained earlier in this document).  
  266. When the user terminates the game and returns to  the desktop the game's icon 
  267. should still be on the iconbar.  The iconbar icon will have a menu from which 
  268. the user can drag a standard RISC OS save box to save the state of the game 
  269. when it returned to the desktop.  
  270.  
  271. Acorn has a simple generic "saved-game" filetype that can be used by any game 
  272. that is registered to use it.  The format consists of a 16 byte header, which 
  273. identifies the game with a name and unique number.  This can then be dragged 
  274. to the game icon on the iconbar and the game would enter at the stage that it 
  275. left off.
  276.  
  277. Note that it is important that, when saving files, the game is never reliant 
  278. on specific filing systems or filing system names.
  279.  
  280. If you do wish to use the saved game filetype, then please get in contact with 
  281. Acorn Developer Support regarding its current status.
  282.  
  283. A full explanation of the saved game filetype can be found in Appendix A.
  284.  
  285.  
  286. 7. Interfacing to Joysticks
  287.  
  288. RISC OS 3 version 3.10 contains a module which allows third party software to 
  289. interface to the built-in Joystick hardware (this is available on certain 
  290. machines).  Full information on the interface to this module can be found in 
  291. Appendix B.
  292.  
  293.  
  294. 8. Software protection
  295.  
  296. It is important for the games writer to take into account that many users now 
  297. have hard discs in their machines.  Many owners of Acorn Computers have hard 
  298. discs.  Hence, for a game to insist on only running from a floppy drive due to 
  299. software protection is not a route that most  users would  find acceptable.  
  300. Of course, we do not mean that games writers should release un-protected 
  301. software, but there are possible alternatives.
  302.  
  303. A common approach used by other application writers, as well as games writers, 
  304. is to use an approach called 'KEY-DISCING'.  This method permits the user to 
  305. install the game onto the hard disc and then execute it from there.  The 
  306. protection comes when the game asks the user to insert the floppy disc 
  307. supplied with the game to read a protected sector or track.  If you do decide 
  308. to use the 'KEY-DISCING' approach then it is important that you still allow 
  309. the user to install the game onto his hard disc.  Subsequent running of the 
  310. game from the hard disc would ask the user to insert the original disc to read 
  311. the protected sector or the like.  This gives the user the benefit of speed by 
  312. loading from the hard disc but also allows protection of the software.
  313.  
  314. Other methods that are worth considering are limiting the number of times they 
  315. can install on his hard disc.  Another possible method is to have a 
  316. 'registration' scheme where, when the user purchases a copy, it will be 
  317. protected and will run from floppy only.  The user would then be able to send 
  318. his disc back to the software house and have the disc un-protected and 
  319. registered.   The user would now be free to install the game on his hard disc, 
  320. but every time he runs the software his registration name and number will 
  321. appear on the screen.  Hence, if the software is distributed without prior 
  322. permission of the author, the tracing of the illegal distribution is made 
  323. easier.
  324.  
  325. 9. Screen mode independence
  326.  
  327. There is increasing diversity of monitor types being used with Acorn 
  328. computers.  VGA and Multiscan monitors have become more common.  It is 
  329. important that no assumptions should be made on the field refresh rate as 
  330. monitors will vary and VSync may change.  All timing should be derived from a 
  331. stable base e.g. Timer1 or 100hz tick.
  332.  
  333. A special VGA compatible mode has been developed specifically for game style 
  334. applications that take over the whole screen.  Details of these modes can be 
  335. found in appendix E.
  336.  
  337.  
  338. 10. Processor dependencies
  339.  
  340. With the increasing range of ARM processors being used, together with varying 
  341. cache and bus clock speeds, it is important that a Game does not make any 
  342. assumptions on processor performance to time the game. For example, timing 
  343. through the use of software loops should not be used. The appropriate 
  344. operating system calls should be used for timing purposes.
  345.  
  346. As many developers are already aware, there are some machine code sequences 
  347. that should not be used with the ARM processor as they cause unstable states. 
  348. An ARM Code check program with further information can be provided by 
  349. Developer Support to enable developers to test their applications for the
  350. presence of these code sequences.
  351.  
  352. 11. Direct addressing of the Video Controller (VIDC)
  353.  
  354. It is known that many games style applications need to poke the Video 
  355. Controller (VIDC) directly to achieve certain special effects.  These special 
  356. effects include some of the following :-
  357.  
  358. - Palette Switching
  359. - Hardware Scrolling
  360. - Setting Video parameters
  361.  
  362. Although addressing the hardware for VIDC1 Video Controller works, the code 
  363. used to address the controller directly will not work on new Video 
  364. Controllers, such as VIDC20.
  365.  
  366. It has been recognised that it is necessary for games to achieve special 
  367. effects, so a module has been developed to provide a SWI veneer to addressing 
  368. the Video Controller.  The module is called Screen Tricks and details of this 
  369. can be found in Appendix F.
  370.  
  371. 12. RISC OS
  372.  
  373. It is important for all software houses, including games software houses, to 
  374. ensure that their software will work effectively of all versions of RISC OS.  
  375. Hence, it is important that developers check that their software runs on all 
  376. versions. 
  377.  
  378.  
  379. 13. Pitfalls to avoid when writing games for RISC OS
  380.  
  381. Ever since the Archimedes range of Computer was first released, software 
  382. houses have been writing innovative games for the machine.  The aim of this 
  383. section is to learn from previous mistakes that have either left the user's 
  384. machine in an unuseable state or conflicted with desktop operation.
  385.  
  386.  
  387.  
  388. Altering CMOS RAM -In the past, some games have re-configured the CMOS RAM to 
  389. enable the application to run.  Altering the CMOS RAM, even though it may be 
  390. temporary, is very bad practice and should never be carried out.
  391.  
  392.  
  393. Faking a reset -This approach SHOULD NEVER BE TAKEN.  If the game has been run 
  394. in a low memory condition then it is up to the user to reset the machine and 
  395. not the game application
  396.  
  397.  
  398. Hardware addressing - There are now many different hardware platforms in the 
  399. Archimedes range of computers.  Hence, we advise that games writers avoid 
  400. addressing the hardware wherever possible and that they follow the standard 
  401. operating system routes. In 1991, Acorn released the A5000, which has 
  402. dramatically different hardware to previous machines.
  403.  
  404. Specific system reliance -In the past, many games have relied on the user 
  405. having a specific system (e.g.  a 1 Megabyte A3000 with a single floppy drive) 
  406. and then have designed their game taking into account this environment only.  
  407. Many users now have machines with larger memory capacity, multiple floppy 
  408. drives, hard discs in many flavours (the list is endless) and it is important 
  409. that the game will run on any hardware platform in the Archimedes range, no 
  410. matter how it has been configured. 
  411.  
  412. Shift-Break -Using Shift-Break to start the game should no longer be used.  
  413. This method of starting a game is a legacy from the BBC Model B days and with 
  414. the introduction of RISC OS and the desktop environment is no longer necessary.
  415. The games writer should follow the guidelines provided earlier  in this 
  416. document to find out how the game should start-up.
  417.  
  418. 14. Summary
  419.  
  420. If the points in this document are taken into account then the games writer 
  421. should be able to produce a RISC OS compatible item of software.
  422.  
  423. The basic rule when writing a game for RISC OS is :-
  424.  
  425. "Take the user into account - allow the user to start the game from the 
  426. desktop, without the loss of any data, and then allow an easy return on 
  427. termination of the game to a machine that is in the same state."
  428.  
  429. If you are unsure about anything that has been described in this document then 
  430. please get in contact with Acorn Developer Support (if you are a Registered 
  431. Developer) otherwise you should contact Customer Services.  It is important 
  432. from Acorn's and all third parties points of view that only RISC OS Compatible 
  433. or Compliant software is released for the Archimedes range of machines.
  434.  
  435. Appendix A:
  436. the "Saved Game" filetype
  437.  
  438. A generic filetype exists for data saved from a  game (e.g.  an adventure 
  439. game).  Hence,  the loading of the saved game file will cause  your game to 
  440. re-start at the place that you left off.
  441.  
  442.  
  443. FileType specification
  444.  
  445. The filetype is &AE8 and has the name 'SaveGame'.  To allow this filetype to 
  446. be used by many different games then the file must have a specific header so 
  447. that the required game can recognise its own saved data.  The file header will 
  448. be as follows :-
  449.  
  450.  Size     Description
  451.  
  452.   4       A single word Identifier
  453.   12      Name of application that created it (null terminated)
  454.  
  455. This gives the file a 16 byte header followed by the data written by the 
  456. application/game.  The data will be at byte offset 16 in the file.
  457.  
  458. As with any generic filetype, you  may encounter the case where this filetype 
  459. will be loaded into your application and its data is for another.  In this 
  460. case, you should explain this to the user in an error box similar to the 
  461. following :-
  462.  
  463. <Insert DrawFiles.Figure2 here>
  464.  
  465. Allocations of this filetype
  466.  
  467. If an application or game wishes to use this filetype then it will obviously 
  468. need two items reserved for its own use.  These are as follows :-
  469.  
  470. A single word identifier (starting from &0000)
  471. A 12 character name
  472.  
  473. These will be allocated by Acorn on request.
  474.  
  475.  
  476. Appendix B:
  477. SWI Interface for Joystick Devices
  478.  
  479. The Joystick module provides a SWI interface for reading the state of a 
  480. joystick.  When the module initialises, it tests for the existence of built-in 
  481. joystick hardware and if it does not find any then it will not initialise.  
  482. Third parties can replace this module to provide support for different 
  483. hardware.  It is recommended that any such modules have version numbers 
  484. greater than 2.00 so that Acorn can upgrade its own module without preventing 
  485. its replacement.
  486.  
  487. SWI  Joystick_Read (SWI &43F40)
  488.  
  489. Returns the state of a joystick.
  490.  
  491. On entry: R0 = joystick number
  492.  
  493. On exit:  R0 = joystick state
  494.  
  495. Interrupts:  Interrupt status is not altered
  496.  
  497. Processor mode: Processor is in SVC mode
  498.  
  499. Re-entrancy: Not defined
  500.  
  501. Use:            This SWI is used to obtain the state of the requested
  502.                 joystick.  The state is returned in the following
  503.                 format:
  504.  
  505.                         Byte 0: signed Y value (range -127 to 127)
  506.                                 -64, 0 or 64 for single switch joystick
  507.                                 (corresponds to Down, Rest, Up).
  508.  
  509.                         Byte 1: signed X value (range -127 to 127)
  510.                                 -64, 0 or 64 for single switch joystick
  511.                                 (corresponds to Left, Rest, Right).
  512.  
  513.                         Byte 2: Switches (e.g. fire buttons) starting in
  514.                                 bit 0, unimplemented switches return 0.
  515.  
  516.                         Byte 3: Reserved.
  517.  
  518. Note that this format allows both digital and analogue devices to be supported.
  519. Applications which are only interested in state (up, down, left, right) should 
  520. not simply test the bytes for positive, negative or zero.  It is recommended 
  521. that the 'at rest' state should span a middle range, say from -32 to 32 since 
  522. analogue joysticks cannot be relied upon to produce 0 when at rest.
  523.  
  524. Appendix C:
  525. Retrieving modules from the RMA
  526.  
  527. As discussed earlier in this document, in low memory conditions it is 
  528. permissible for the game application to kill certain modules that are not used 
  529. by the game itself, to be able to free as much memory in the machine as 
  530. possible.  This should, of course, ONLY be carried out in conjunction with the 
  531. warning sequences, desktop closedown and non-return to the desktop as 
  532. explained earlier in this document.
  533.  
  534. The list differs between machines running RISC OS 2 and RISC OS 3.  When you 
  535. are RMKilling modules in low memory conditions, you should ensure that none of 
  536. the modules are needed by your application.  Please note, that you should only 
  537. RMKill modules and never UNPlug them.
  538.  
  539. The list of the modules is as follows.  You should ensure that you *RMTidy the 
  540. module area after you have killed the modules to truly free the space.
  541.  
  542. RISC OS 2
  543.  
  544. Desktop  SystemDevices  FileCore%RAM Econet
  545. NetFS  NetPrint  BBCEconet  International
  546. InternationalKeyboard Debugger  IIC  SoundScheduler
  547. StringLib  Percussion  SpriteExtend  Draw
  548. FontManager  WindowManager TaskManager  PaletteUtil
  549. Filer  ADFSFiler  RAMFSFiler  NetFiler
  550. ShellCLI  Hourglass  NetStatus  SpriteUtils
  551. Podule  SharedCLibrary ARMBasicEditor RamFS
  552. MIDI  ColourTrans
  553.  
  554. RISC OS 3
  555.  
  556. DOSFS  !Edit  !Paint  !Draw
  557. !Configure  StringLib  Filer_Action  SharedCLibrary
  558. Percussion  FilterManager  WindowUtils WindowManager
  559. TaskWindow  SystemDevices SysInfo  SuperSample
  560. Squash  SpriteUtils  SpriteExtend  SoundScheduler
  561. ShellCLI  ScreenBlanker  RTCAdjust  ROMFonts
  562. ResourceFiler  RAMFSFiler  PipeFS  Pinboard
  563. PDumperDM  PDriverDP  PDriver  PaletteUtil
  564. NetStatus  NetPrint  NetFiler  BroadcastLoader
  565. NetFS  InternationalKeyboar  International  IIC
  566. Hourglass  Free  FontManager  FilerSWIs
  567. Filer  BBCEconet  Econet  Draw
  568. DragASprite  Debugger  ColourTrans  BASICTrans
  569. BASIC  ADFSFiler  Printers  !Help
  570. !Chars  !Calc  !Alarm  TaskManager
  571. Desktop  Podule
  572.  
  573.  
  574. Appendix E:
  575. The Games Modes module
  576.  
  577. The games modes module is a module that has been specifically developed for 
  578. the use of game style applications which take over the whole screen.  This 
  579. module is intended to support the use of VGA monitors, but with lower demands 
  580. on processor power and screen memory than the standard VGA mode 27 and 28.  
  581. The games modes module provides two modes and these are as follows :-
  582.  
  583. Mode No. Dimensions BPP (no. Colours) Screen Memory Vertical Refresh
  584.  
  585.   48       320 * 480        4 (16)         96k            60 Hz
  586.   49       320 * 480        8 (256)        160k           60 Hz
  587.  
  588. This module is available from developer support on request.
  589.  
  590.  
  591. Appendix H:
  592. Other relevent documentation
  593.  
  594. This application note does not cover all the aspects of writing games 
  595. applications for RISC OS and other technical documentation maybe relevant.  
  596. Other relevant documentation includes the following :-
  597.  
  598. Title:       The RISC OS 3 Programmer's Reference Manual
  599. Publisher:   Acorn Computers Limited
  600. ISBN:        1 85250 110 3
  601.  
  602. Title:       Acorn Assember Release 2 Users Guide
  603. Publisher:   Acorn Computers Limited
  604. ISBN:        1 85250 096 4
  605. Available:   Documentation supplied as part of Desktop Assembler Pack
  606.  
  607. Title:       Acorn C Release 4 User Guide
  608. Publisher:   Acorn Computers Limited
  609. ISBN:        1 85250 095 6
  610. Available:   Documentation supplied as part of the Desktop C pack
  611.  
  612. Title:       BBC BASIC Reference Manual VI
  613. Publisher:   Acorn Computers Limited
  614. ISBN:        1 85250 103 0
  615.  
  616. Title:       Acorn RISC Machine Family Data Manual
  617. Publisher:   Prentice Hall, Inc.
  618. ISBN:        0 13 781618 9
  619. Available:   VLSI Sales Office
  620.              486-488 Midsummer Blvd
  621.              Saxon Gate West, Central Milton Keynes
  622.              MK9 2EQ
  623.              United Kingdom
  624.              Phone: 0908 667595
  625.              Fax:   0908 670027
  626.  
  627. Some of the titles mentioned above depend on the language used in programming.
  628.